The invention is of particular use in such apparatus and method that aim for high fidelity in reproduction of colors and fine image details. Such approaches strive for near-photographic quality, by maintaining multilevel digital representation of the visual elements all the way to the final processes in the printer.
(a) Colorimetric dynamic range--Some such systems and techniques may transmit to a printer multilevel red, green and blue (RGB) colored-light data representing each pixel of an original image, for processing (usually called "rendition") within the printer in preparation for either binary or multilevel color printing and by any one of a variety of approaches. For instance each of the three colors might be represented on an eight-bit digital scale, 256 levels (starting with zero) for each color, coming to a total of twenty-four bits at each pixel. This is the arrangement which we currently prefer.
Other such systems and techniques might entail transmission of multilevel data for three chromatic colorants customarily cyan, magenta and yellow plus black (CMYK), at each pixel--each of the four colors being represented on a six-bit digital scale, sixty-four levels for each color, again coming to twenty-four bits at each pixel. In this case, whatever rendition is desired may be performed before transmission of data to the printer, and the data which are transmitted are considered essentially ready to apply in the actual printing process. Techniques of this type, while we do not currently prefer them, can be practical and are within the scope of the present invention.
In conjunction with multiple data levels, such modern environments in computer-controlled printers typically use very high spatial resolution, for instance twelve to twenty-four pixels per millimeter (300 to 600 pixels per inch). Thus in both the colorimetric and spatial domains these printing environments effectively approach the capabilities of the photographic process.
For purposes of discussion we shall use the lower of these two resolution levels just mentioned. The data density corresponding to such performance, for a standardsize sheet of printing medium, taking the pictorial image area as about 203 by 254 millimeters (eight by ten inches), comes to about 24.times.12.sup.2 .times.203.times.254 (or 24.times.300.sup.2 .times.8.times.10)=about 173 million bits.
(b) Data transmission rates and times--Another part of the printing environments under discussion, however, is the data source: most commonly a personal computer, and nowadays one operating with the currently popular Windows.RTM. operating system. In the versions of that operating system that are now in greatest use, the average parallel data throughput to a printer is roughly 30 thousand Bytes per second (each Byte being eight bits), or 0.24 million bits per second, coming to some 15 million bits per minute.
Such printing environments tend to severely limit the overall printing throughput. Transmitting a full image on the basis of these figures requires 173-15=111/2 minutes.
In the highly competitive modern world of computer-controlled high-quality color printing, even for a relatively economical printer in the range of perhaps $400 to $600, this would be unacceptably slow. The desired or acceptable page-throughput range, depending upon price and application, may be from perhaps one to five minutes--thus calling for improvement by a factor of some 21/4 to 111/2.
In one current product development of the Hewlett Packard Company, a design objective is four-minute page throughput--requiring an improvement by a factor of about three. As more users turn to faster operating systems such as Windows 95.RTM. and Windows.RTM., typical transmission speeds may rise, but probably not as rapidly as will consumer expectations for throughput. A likely result will be a commercial requirement for improvement by factors exceeding three.
(c) Data compression--A well-known way to reduce data transmission times is to somehow encode the data to lower the amount of data bits actually passing from one apparatus to another. Among the most common methods is run-length encoding (RLE), which transmits the number of like characters in an uninterrupted row (or "run") and identifies the particular character which is subject to that run.
In a typically complex pictorial image, the number of characters in a run may sometimes be great enough to produce a compression factor exceeding two, but cannot be relied upon to produce such an improvement. Whatever technique is used to garner an improvement must be reasonably reliable, consistent, so that the throughput can be stated and advertised.
Among other algorithm types currently available for image data are those known as JPEG, chrominance subsampling, Huffman encoding, and Lempel-Ziv-Welch (LZW) compression. Of these, the more simple types cannot reliably produce the needed factors of improvement.
The others require relatively complicated processing, which in turn is inconsistent with the economical selling-price range mentioned above. In the JPEG method, for example, frequency content of the data are analyzed; while not as costly as full Fourier analysis, this method is still too expensive.
Chrominance subsampling requires computations in the chroma domain--and for this purpose light signals (RGB) or colorant signals (CMYK) must be first converted to some variable related to chroma. This is a relatively costly and time-consuming proposition.
Huffman encoding is described by W. Pennebaker and J. Mitchell in their book JPEG Still Image Data Compression Standard, as follows. The Huffman technique belongs to the class of entropy coding and involves statistical analysis. For a set of symbols to be coded, the most probable one will have the shortest code, and the least likely will have the longest. Here is an example:
______________________________________ weather simple probability better ______________________________________ clear 00 3/4 0 cloudy 01 1/8 10 rain 10 1/16 110 snow 11 1/16 111. ______________________________________
The code used in the "simple" column has two bits per possibility, independent of the likelihood of having to use the code. The "better" column transmits a single bit for the eventuality that occurs in the great majority of cases (preferably a zero for optimum use of RLE encoding and for discrimination against all the other codes, that begin with "1"), and resorts to longer coding only for occasions that arise less frequently.
The resulting number of bits per symbol, on the average, is only 3/4.times.1+1/8.times.2+2.times.1/16.times.3=13/8--which is an improvement of about thirty percent, relative to two bits for the column headed "simple". The computational overhead of such a system for our present purposes, however, would be unacceptable.
LZW belongs to the category of so-called "dictionary schemes". It works by building a dictionary of symbols as the date are being treated. With a long enough data set, a good dictionary-building scheme, and long repetitive symbols, this type of approach works well--mainly due to the fact that sending the reference location of a symbol in the dictionary is more efficient than sending the symbol itself. The patented Welch form of this method is widely used.
Both the Huffman and LZW methods are classed as "lossless". It has been shown that lossless compression methods when applied to natural images usually can achieve only ratios of 1.5:1 to 2:1. Examples can be seen in Weinberger et al., "LOCO-I: a Low Complexity Lossless Image Compression Method", ISO/IEC JTC 1, SC 29, WG1, document N203 (Jul. 10, 1995).
More to the present point, LZW methods--like Huffman's--entail substantial algorithmic overhead for building of the dictionary. LZW may also be awkward to implement in real time, or without using large amounts of upstream storage capability.
Most image-compression algorithms attempt to solve the problem of data-array size, whereas the problem at hand really is one of transmission time. As suggested in the preceding paragraphs, algorithmic complexity may influence cost and also may itself constrain transmission time: computation time for compression and decompression stages is a factor in overall throughput.
Compression typically is performed in an already-existing relatively fast computing environment, at a point in the overall system that is typically shared with many other computing processes. Therefore the overall result may not be extremely sensitive to complexity in the compression stage.
Decompression, however, must occur in the printer. Here, designing in a requirement for rapid complex computation, at a point which is dedicated to the printer itself, translates into prohibitive cost.
Additionally, the "photographic" quality output of the current generation of color printer products demands that any image manipulation be visually lossless. This consideration militates against some of the familiar techniques for data compression, which sometimes tend to create perceptible shifts in visual quality.
(d) Conclusion--The above-discussed limitations on data transfer, in relation to the size of modern data files for direction to computer-controlled modern printers, have continued to impede achievement of uniformly excellent inkjet printing--at high throughput. Thus important aspects of the technology used in the field of the invention remain amenable to useful refinement.